package org.example.chat.aop.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 限流
 * @author cheva
 */
@Target(value = {ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AccessLimiter {
    /** 间隔多少秒向令牌桶生成一次令牌 */
    int rateInterval() default 1;
    /** 每次生成多少个令牌 */
    int rate();
    /** 是否根据客户端ip限流 */
    boolean isLimitByClientIp() default false;
}
